"use strict";
// number 数组里面所有的项，必须是number
// let numArr:number[] = [1,2,3];
// numArr.push(4);
// console.log(numArr);
// let booArr:Boolean[] = [true];
// booArr.push(false)
let numArr = [1, 2];
// numArr.push('3')
// 元组的初始化赋值，必须和指定类型的数量保持一致。
// let tom:[String,Number,String] = ['tom',12,'30'];
// // tom.push('12');
// tom[2] = '23';
// console.log(tom);
// 类型推论
// let str = 'one';  // 全写的形式 => let str:String = 'one';
// str = 1;
// 如果没有 给 str 初始值的话 会被 推论成 any
// let str;
// str = 5;
// str = '5';
// any 是任何类型都可以；
// let str:any = 30;
// str = '30';
// 联合类型 
// let num: String | Number = 20;
// num = '2,0';
// num = 40;
// // num = [];
// // 特别注意：在使用联合类型的时候，我们一般使用他们的公共方法。
// console.log(num.toString());
// function getLength (something: String | Number): number { // 获取传入的形参的长度
//    console.log(something.toString().length);
//   return something.toString().length;
// }
// console.log(getLength('123456'));
// console.log(getLength(230));
// 类型断言
function add(num, num1) {
    //    return (<number>num) + (<number>num1);
    return num + num1;
    //    (num as number) 和 (<number>num1) 是类型断言的两种方式。
}
console.log(add(20, 30));
